'use strict'

const titbit=require('titbit');
const {cookie,session}=require('titbit-toolkit');

const app=new titbit({
    debug:true
})

app.use(async (c,next)=>{  //用use添加的中间件按顺序执行
    if(c.query.key!='12345'){
        return c.status(403).send('deny');
    }
    await next();  //如果不写await next()那么程序到此为止不再向下执行，写上的话会继续执行下一个中间件
},{group:'session'})  //该中间件只对group为session的请求起作用

/* c.routepath  /content/:id
   c.path       /content/1234
   name    路由名称
   group   路由分组
*/
app.use(async (c,next)=>{
    console.log('time start');
    let startTime=Date.now();
    await next()
    let endTime=Date.now();
    console.log(endTime-startTime,'ms');
})

app.use(new cookie).use(new session)  //先启用cookie，再启用session，因为session是基于cookie实现的

app.use(async (c,next)=>{
    console.log('home start');
    await next();
    console.log('home end');
},{group:'home',method:['GET']})  //该中间件只对group为home的且为GET的请求起作用

app.get('/',async c=>{
    c.send('ok');
},{name:'主页',group:'home'})  //给该路由设置name和group属性

app.get('/sess/:x/:y',async c=>{
    c.setSession('x',c.param.x);
    c.setSession('y',c.param.y);

    c.send(c.getSession())
},{group:'session'})

app.run(1235);